package main

import (
	"fmt"
)

func main() {
	const a = iota
	fmt.Println(swit(a))
	var t interface{}
	t = swit(99)
	switch t := t.(type) {
	default:
		fmt.Printf("unexpected type %T\n", t) // %T prints whatever type t has
	case bool:
		fmt.Printf("boolean %t\n", t) // t has type bool
	case int:
		fmt.Printf("integer %d\n", t) // t has type int
	case *bool:
		fmt.Printf("pointer to boolean %t\n", *t) // t has type *bool
	case *int:
		fmt.Printf("pointer to integer %d\n", *t) // t has type *int
	}
}

func swit(a int) string {
	switch {
	case a > 5:
		return "a > 5"
	case a > 3:
		return "a > 3"
	}
	return "a < 5 and a < 3"
}
